package dbAccess;

import java.util.ArrayList;
import java.util.Calendar;

import dto.DTOAbsence;
import dto.DTOContact;
import dto.DTORelation;

/**
 * @author Jonathan Maret
 * Interface related to the DTOAbsence
 * @param <DTOAbsence>
 */
public interface AbsenceService<DTOAbsence> {
	
	/**
	 * @return All absences
	 */
	public ArrayList<DTOAbsence> getAllAbsence();
	/**
	 * @param contact
	 * @return All absences related to a contact
	 */
	public ArrayList<DTOAbsence> getAbsenceByContact(DTOContact contact);
	/**
	 * update an absence
	 * @param absence
	 */
	public void updateAbsence(DTOAbsence absence);
	/**
	 * Remove the absence
	 * @param dtoAbsence
	 */
	public void removeAbsence(DTOAbsence absence);

	/**
	 * @param day
	 * @return All absences related to the specified day
	 */
	public ArrayList<DTOAbsence> getDailyAbsence(Calendar day);
	
}
